import { topList, leftList, setListFn } from './../../../utils';

import img from './../../../../components/img/paper6.png';

const writeUpdateTrimmingObj = {
  funId: 'trimming',
  computedValInListObj: {
    // 纸长 - 2（箱长 +  箱宽） - 切角
    num1: {
      funId: 'paperboardLength' // 纸长
    },
    computedType: 'reduce', // -
    num2: {
      computedValInListObj: {
        num1: {
          computedValInListObj: {
            num1: {
              value: 2
            },
            computedType: 'ride', // *
            num2: {
              computedValInListObj: {
                num1: {
                  funId: 'materialLength'
                },
                computedType: 'add', // +
                num2: {
                  funId: 'materialWidth'
                }
              }
            }
          }
        },
        computedType: 'add', // +
        num2: {
          funId: 'chamfer' // 切角
        }
      }
    }
  }
};

const writeUpdateMaterialHeightObj = {
  funId: 'materialHeight',
  computedValInListObj: {
    // 纸宽- 箱宽
    num1: {
      funId: 'paperboardWidth' // 纸宽
    },
    computedType: 'reduce', // -
    num2: {
      funId: 'materialWidth' // 箱宽
    }
  }
};

export default {
  labelZh: `一键定位`,
  labelEn: `One-button Positioning`,
  labelRu: `Позиционирование в один клик`,
  type: `positioningModal`,
  modalWidth: 1200,
  list: [
    {
      type: 'box',
      labelZh: '箱型配置',
      labelEn: 'Carton Type Configuration',
      labelRu: 'Конфигурация типа коробки',
      id: 'boxOptions',
      img,
      hiddenTitle: true,
      showLabel: true,
      list: setListFn([
        {
          inputType: 'write',
          labelZh: '纸板长',
          labelEn: 'Cardboard Length',labelRu: 'Длина картона',
          top: topList[1],
          left: leftList[2],
          funId: 'paperboardLength',
          defaultValGetOrderField: 'paperboardLength',
          notWrite: true,
          writeUpdateListFunIdObjList: [writeUpdateTrimmingObj],
          blurChange: true
        },
        {
          inputType: 'write',
          labelZh: '纸板宽',
          labelEn: 'Cardboard Width',labelRu: 'Ширина картона',
          top: topList[2],
          left: leftList[5],
          funId: 'paperboardWidth',
          defaultValGetOrderField: 'paperboardWidth',
          notWrite: true,
          blurChange: true,
          writeUpdateListFunIdObjList: [writeUpdateMaterialHeightObj]
        },
        {
          inputType: 'write',
          labelZh: '纸箱长',
          labelEn: 'Carton Length',labelRu: 'Длина картонной коробки',
          top: topList[0],
          left: leftList[1],
          funId: 'materialLength',
          defaultValGetOrderField: 'materialLength',
          notWrite: true,
          writeUpdateListFunIdObjList: [writeUpdateTrimmingObj],
          blurChange: true
        },
        {
          inputType: 'write',
          labelZh: '纸箱宽',
          labelEn: 'Carton Width',labelRu: 'Ширина картонной коробки',
          top: topList[0],
          left: leftList[0],
          funId: 'materialWidth',
          defaultValGetOrderField: 'materialWidth',
          notWrite: true,
          writeUpdateListFunIdObjList: [
            writeUpdateTrimmingObj,
            writeUpdateMaterialHeightObj
          ],
          blurChange: true
        },
        {
          inputType: 'write',
          labelZh: '纸箱高',
          labelEn: 'Cardboard Height',labelRu: 'Высота картонной коробки',
          top: topList[2],
          left: leftList[0],
          funId: 'materialHeight',
          defaultValGetOrderField: 'materialHeight',
          notWrite: true,
          blurChange: true
        },
        {
          inputType: 'write',
          labelZh: '切角',
          labelEn: 'Cutting angle',
          labelRu: 'Обрезка углов',
          top: topList[1],
          left: leftList[5],
          funId: 'chamfer',
          defaultValGetOrderField: null,
          notWrite: true,
          writeUpdateListFunIdObjList: [writeUpdateTrimmingObj],
          blurChange: true,
          defaultValGetLocal: true,
          valSetLocal: true
        },
        {
          inputType: 'read',
          labelZh: '修边',
          labelEn: 'Trimming',
          labelRu: 'Обрезка кромок',
          top: topList[1],
          left: leftList[6],
          funId: 'trimming',
          defaultValGetOrderField: null,
          defaultVal: null
        },
        {
          inputType: 'btnOtherOperate',
          labelZh: '启动定位',
          labelEn: 'Positioning start',
          labelRu: 'Запуск позиционирования',
          top: topList[2],
          left: leftList[1],
          funId: null,
          defaultValGetOrderField: null,
          writeOtherFunIdList: [
            {
              funId: 'leftBaffleSet', // 左挡板
              inputType: 'readWrite',
              computedValInListObj: {
                // 箱宽 + 箱长 + 切角
                num1: {
                  funId: 'chamfer'
                },
                computedType: 'add',
                num2: {
                  computedValInListObj: {
                    num1: {
                      funId: 'materialWidth'
                    },
                    computedType: 'add',
                    num2: {
                      funId: 'materialLength'
                    }
                  }
                }
              }
            },
            {
              funId: 'rightBaffleSet', // 右挡板
              inputType: 'readWrite',
              computedValInListObj: {
                // 箱宽 +  箱长 + 边1
                num1: {
                  funId: 'trimming'
                },
                computedType: 'add',
                num2: {
                  computedValInListObj: {
                    num1: {
                      funId: 'materialWidth'
                    },
                    computedType: 'add',
                    num2: {
                      funId: 'materialLength'
                    }
                  }
                }
              }
            },
            {
              funId: 'afterBaffleSet', // 后挡板
              inputType: 'readWrite',
              computedValInListObj: {
                // 箱长 +  箱宽
                num1: {
                  funId: 'paperboardWidth'
                },
                computedType: 'add',
                num2: {
                  value: 0
                }
              }
            },
            {
              funId: 'slottingABSet', // 切角
              inputType: 'readWrite',
              computedValInListObj: {
                // 箱长 +  箱宽
                num1: {
                  funId: 'materialWidth'
                },
                computedType: 'add',
                num2: {
                  funId: 'materialLength'
                }
              }
            },
            {
              funId: 'slottingBCSet', // 角2
              inputType: 'readWrite',
              writeValGetListFunId: 'materialWidth'
            },
            {
              funId: 'slottingCDSet', // 边2
              inputType: 'readWrite',
              writeValGetListFunId: 'materialLength'
            },

            {
              funId: 'slottingDESet', // 修边
              inputType: 'readWrite',
              computedValInListObj: {
                // 箱长 +  箱宽
                num1: {
                  funId: 'materialWidth'
                },
                computedType: 'add',
                num2: {
                  funId: 'materialLength'
                }
              }
            },
            {
              funId: 'slottingBoxHeightSet', //箱高
              inputType: 'readWrite',
              writeValGetListFunId: 'materialHeight'
            },
            {
              funId: 'slottingPhaseSet', // 开槽
              inputType: 'readWrite',
              computedValInListObj: {
                // 箱长 +  箱宽
                num1: {
                  computedValInListObj: {
                    num1: {
                      funId: 'paperboardWidth'
                    },
                    computedType: 'reduce',
                    num2: {
                      funId: 'materialHeight'
                    }
                  }
                },
                computedType: 'divided',
                num2: {
                  value: 2
                }
              }
            }
          ]
        }
      ])
    }
  ]
};
